package com.desksoft.ecommerce.util.html.element.variable;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

/**
 * Xml查询页面中使用的变量
 * ----
 * 		所有的变量都从${}中取值，只是不同类型变量$与{之间有不同
 * @author Administrator
 *
 */
public abstract class Variable implements Serializable {

	protected Map<String,String> map = new HashMap<String,String>();
	
	/**
	 * $与{之间的部分
	 */
	protected String type="";
	
	public Variable() {
		super();
	}

	/**
	 * 获取本类型变量值，若变量不属于本类型则直接返回key
	 */
	protected String getValue(String key){
		if (key == null){return "";}
		int index_s = key.indexOf("$" + this.getType() + "{") , index_e = key.indexOf("}");
		if (index_s >= 0 && index_e > 0 && index_s + 2 < index_e){
			key = key.substring(index_s + this.getType().length() + 2 , index_e);
			return this.getLocalValue(key);
		}
		
		return key;
	}
	
	/**
	 * $与{之间的部分
	 */
	public abstract String getType();
	
	protected String getLocalValue(String key){
		return this.map.get(key);
	}
	
	public abstract void initVariable();
}
